package com.quanxi.qxaimain.dao.ureport;

import com.quanxi.qxaimain.common.datasource.datasourceAOP.annotation.DataSource;
import com.quanxi.qxaimain.common.datasource.datasourceAOP.enums.DataSourceEnum;
import com.quanxi.qxaimain.model.UreportFile.UreportFileEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * Ureport文件 Mapper
 * @Author lyx
 * @create 2022/12/12 10:11
 */
@Mapper
public interface UreportFileMapper {

    /**
     *  根据报表名称检查报表是否存在
     * @param name 报表名称
     * @return
     */
    @DataSource(DataSourceEnum.DB1)
    int checkExistByName(String name);

    /**
     *  根据报表名称查询报表
     * @param name 报表名称
     * @return
     */
    @DataSource(DataSourceEnum.DB1)
    UreportFileEntity queryUreportFileEntityByName(String name);

    /**
     * 查询全部报表
     * @return
     */
    @DataSource(DataSourceEnum.DB1)
    List<UreportFileEntity> queryReportFileList();






    /**
     * 根据报表名称删除报表
     * @param name
     * @return
     */
    @DataSource(DataSourceEnum.DB1)
    int deleteReportFileByName(String name);


    /**
     *  保存报表
     */
    @DataSource(DataSourceEnum.DB1)
    int insertReportFile(UreportFileEntity entity);

    /**
     *  更新报表
     * @param entity
     * @return
     */
    @DataSource(DataSourceEnum.DB1)
    int updateReportFile(UreportFileEntity entity);



    //关键词搜索
    @DataSource(DataSourceEnum.DB1)
    @Select("<script>"+
            "select id_,name_,create_time_,update_time_ from  ureport_file_tbl  WHERE 1 = 1 "+
            "<if test='keywords!= null and keywords!=\"\"'> and( id_  like concat(\"%\", #{keywords}\"%\") OR name_ like concat(\"%\", #{keywords}\"%\")  )" +
            "</if> ORDER BY update_time_ desc "+
            "</script>"
    )
    List<Map<String,Object>> find_ureport(@Param("keywords") String keywords);




}